import { createStore } from 'vuex'
import createPersistedState from "vuex-persistedstate";
// A模块
// const moduleA={
//   state:{
//     username:"moduleA"
//   },
//   getters:{
//     newName(state){
//       return state.username+"!!!"
//     }
//   },
//   mutations:{
//     updateName(state){
//       state.username="moduleAAAA"
//     }
//   }
// }
// // B模块
// const moduleB={
//   // 开启命名空间
//   namespaced:true,
//   state:{
//     username:"moduleB"
//   },
//   getters:{
//     newName(state){
//       return state.username+"!!!"
//     }
//   },
//   mutations: {
//         // updateName(state,payload){
//    updateName(state){
//       state.username="ls"
//     }
//   },
//     actions: {
//       updateName(ctx){
//         // 发请求
//         setTimeout(()=>{
//           ctx.commit("updateName")
//         },1000)
//       }
//     },
// }
// export default createStore({
//   modules:{
//     moduleA,
//     moduleB
//   }
// })









// vue2.0,创建仓库  new Vuex.Store({})
// vue3.0创建仓库 createStore({})
// export default createStore({
//   state: {
//     username: 'zs'
//   },
//   getters:{
//     newName(state){
//       return state.username + "!!!"
//     }
//   },
//   mutations: {
//     // updateName(state,payload){
//       updateName(state){
//       state.username="ls"
//     }
//   },
//   actions: {
//     updateName(ctx){
//       // 发请求
//       setTimeout(()=>{
//         ctx.commit("updateName")
//       },1000)
//     }
//   },
//   modules: {
//   }
// })


//三个持久化 
import cart from "./modules/cart"
import user from "./modules/user"
import category from "./modules/category"
export default createStore({
  modules: {
    cart,
    user,
    category
  },
  // 这个插件默认是存储在localStorage里面的
  // 配置vuex插件，为什么是数组？可以配置多个插件
  plugins:[
    createPersistedState({
      // 本地存储
      key: 'erabbit-client-pc-24-store',
      // 指定需要存储的模块
      paths: ['user','cart']
    })
  ]
})